#include <stdio.h>
#include <iostream>
#include <map>
#include <string>
#include <vector>
using namespace std;

map<char, char> mapper;

void init()
{
	mapper['A'] = '2';
	mapper['B'] = '2';
	mapper['C'] = '2';
	mapper['D'] = '3';
	mapper['E'] = '3';
	mapper['F'] = '3';
	mapper['G'] = '4';
	mapper['H'] = '4';
	mapper['I'] = '4';
	mapper['J'] = '5';
	mapper['K'] = '5';
	mapper['L'] = '5';
	mapper['M'] = '6';
	mapper['N'] = '6';
	mapper['O'] = '6';
	mapper['P'] = '7';
	mapper['R'] = '7';
	mapper['S'] = '7';
	mapper['T'] = '8';
	mapper['U'] = '8';
	mapper['V'] = '8';
	mapper['W'] = '9';
	mapper['X'] = '9';
	mapper['Y'] = '9';
}

int main()
{
	init();
	
	int num;
	char temp[512];
	char newtemp[512];
	vector<string> data;
	cin >> num;
	int index = 0;
	map<string, int> tempd;

	for(int i = 0; i < num; i++)
	{
		scanf("%s", temp);
		index = 0;
		for(size_t j = 0; j < strlen(temp); j++)
		{
			if(temp[j] != '-')
			{
				if(temp[j] >= 65 && temp[j] <= 89)
					newtemp[index] = mapper[temp[j]];
				else
					newtemp[index] = temp[j];
				index++;
			}
		}
		newtemp[index] = '\0';
		string test;
		test = newtemp;
		tempd[test]++;
	}

	bool flag = false;

	for(map<string, int>::iterator it = tempd.begin(); it != tempd.end(); it++)
	{
		if((*it).second > 1)
		{
			flag = true;
			string key = (*it).first;
			for(size_t i = 0; i < 3; i++)
				cout << key[i];
			cout << "-";
			for(size_t i = 3; i < key.length(); i++)
				cout << key[i];
			cout << " " << (*it).second << endl;
		}
	}
	if(!flag)
		cout << "No duplicates." << endl;

	return 0;
}